<mxfile host="localhost" modified="2023-11-24T15:28:21.405Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" etag="Q1JBQMUIJrIAfXJBVY0T" version="@DRAWIO-VERSION@" type="device">
  <diagram id="f106602c-feb2-e66a-4537-3a34d633f6aa" name="Page-1">
    <mxGraphModel dx="1971" dy="1048" grid="1" gridSize="10" guides="1" tooltips="1" connect="0" arrows="0" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="none" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="14" value="&lt;b&gt;Google &lt;/b&gt;Cloud Platform" style="fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;fontSize=14;align=left;spacing=10;fontColor=#717171;9E9E9E;verticalAlign=top;spacingTop=-4;fontStyle=0;spacingLeft=40;html=1;" parent="1" vertex="1">
          <mxGeometry x="360" y="100" width="490" height="210" as="geometry" />
        </mxCell>
        <mxCell id="15" value="" style="shape=mxgraph.gcp2.google_cloud_platform;fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;" parent="14" vertex="1">
          <mxGeometry width="23" height="20" relative="1" as="geometry">
            <mxPoint x="20" y="10" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="5gIoKyEhB0twP1pWMEBH-135" value="" style="strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;" vertex="1" parent="14">
          <mxGeometry x="60" y="129" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="5gIoKyEhB0twP1pWMEBH-136" value="App&#xa;Engine" style="editableCssRules=.*;html=1;fontColor=#999999;shape=image;verticalLabelPosition=middle;verticalAlign=middle;labelPosition=right;align=left;spacingLeft=20;part=1;points=[];imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2LjAyMDAwMDQ1Nzc2MzY3MiIgZmlsbC1ydWxlPSJldmVub2RkIiB2aWV3Qm94PSI4Ljk0MDY5NjcxNjMwODU5NGUtOCAwIDIwIDE2LjAyMDAwMDQ1Nzc2MzY3MiI+JiN4YTsJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4mI3hhOwkuc3Qwe2ZpbGw6IzQyODVmNDt9JiN4YTsJLnN0MXtmaWxsOiNhZWNiZmE7fSYjeGE7CS5zdDJ7ZmlsbDojNjY5ZGY2O30mI3hhOwk8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMi4zIDcuMjZsLTEuMjIgMS4yMkExLjcxIDEuNzEgMCAwIDEgMTAgMTEuNDlhMS43NCAxLjc0IDAgMCAxLTEuMzMtLjY0bC0xLjIyIDEuMjJhMy40MyAzLjQzIDAgMCAwIDUuOTg0LTEuMzgxQTMuNDMgMy40MyAwIDAgMCAxMi4zIDcuMjZ6Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwIDMuNTJhNi4yNSA2LjI1IDAgMCAwIDAgMTIuNSA2LjI1IDYuMjUgMCAwIDAgMC0xMi41bTAgMTAuNzRhNC40NSA0LjQ1IDAgMCAxLTMuMTU3LTcuNTk3QTQuNDUgNC40NSAwIDAgMSAxNC40NCA5LjgyIDQuNDQgNC40NCAwIDAgMSAxMCAxNC4yNiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xOS42MiA5LjE2bC0yLjU2LS44MWE3LjEgNy4xIDAgMCAxIC4xNyAxLjUzIDcuNjIgNy42MiAwIDAgMS0uMDggMS4wOGgyLjQ3YS40NC40NCAwIDAgMCAuMzgtLjQydi0xYS40NC40NCAwIDAgMC0uMzgtLjQyTTEwIDIuNzhhNy40OCA3LjQ4IDAgMCAxIDEuNS4xNUwxMC41OC4zOGMtLjA3LS4yMi0uMjEtLjM4LS40Mi0uMzhoLS4zOGEuNDUuNDUgMCAwIDAtLjQyLjM4bC0uOCAyLjU0QTcuNjQgNy42NCAwIDAgMSAxMCAyLjc4bS03LjIzIDcuMWE3LjEgNy4xIDAgMCAxIC4xNy0xLjUzbC0yLjU2LjgxYS40NC40NCAwIDAgMC0uMzguNDJ2MWEuNDQuNDQgMCAwIDAgLjM4LjQyaDIuNDdhNy42MiA3LjYyIDAgMCAxLS4wOC0xLjA4Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwIDcuMjZhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDEgMCAwLTV6bTAgMy43NWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDEuMjUgMS4yNUExLjI1IDEuMjUgMCAwIDEgMTAgMTEuMDJ6Ii8+JiN4YTs8L3N2Zz4=;" vertex="1" parent="5gIoKyEhB0twP1pWMEBH-135">
          <mxGeometry width="30" height="24" relative="1" as="geometry">
            <mxPoint x="15" y="18" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="5gIoKyEhB0twP1pWMEBH-137" value="" style="strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;" vertex="1" parent="14">
          <mxGeometry x="290" y="129" width="180" height="60" as="geometry" />
        </mxCell>
        <mxCell id="5gIoKyEhB0twP1pWMEBH-138" value="&lt;font color=&quot;#000000&quot;&gt;Docker&lt;/font&gt;&lt;br&gt;Kubernetes Engine" style="editableCssRules=.*;html=1;fontColor=#999999;shape=image;verticalLabelPosition=middle;verticalAlign=middle;labelPosition=right;align=left;spacingLeft=20;part=1;points=[];imageAspect=0;image=data:image/svg+xml,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyIgd2lkdGg9IjMyOS45MjU5OTcyMzE3OTM4IiBoZWlnaHQ9IjM3OC4yODQ5OTAzMTEyNzg4IiB2aWV3Qm94PSIwIDAgODcuMjkyOTk5MjY3NTc4MTIgMTAwLjA4Nzk5NzQzNjUyMzQ0Ij4mI3hhOzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+JiN4YTsJLnN0MHtmaWxsOiNhZWNiZmE7fSYjeGE7CS5zdDF7ZmlsbDojNjY5ZGY2O30mI3hhOwkuc3Qye2ZpbGw6IzQyODVmNDt9JiN4YTs8L3N0eWxlPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00My43NTEgMEwwIDI1LjQ2NXYyLjU4OCA0Ni45Mmw0My43NTIgMjUuMTE1IDQzLjU0MS0yNS4xMjFWMjUuNDczem0yLjQzOCAxMS44NTNsMzIuMTAzIDE4Ljc4MlY2OS43N0w0My43MzkgODkuNzA1IDkgNjkuNzYyVjMwLjY0MWwzMi4xOS0xOC43MzZ2MTQuMTU0TDI0LjUwMyAzNi4xNTNsMTkuMTcyIDExLjUwMiAxOC44ODYtMTEuNTU0LTE2LjM3Mi0xMC4wMjR6Ii8+JiN4YTsJPHBhdGggY2xhc3M9InN0MSIgZD0iTTIyLjAyNSA0MC40OTZsLjE2NiAxOS4xNDMtMTMuMjQ3IDcuMzN2Mi43NDJsMi42MzcgMS41MTQgMTIuNjQ4LTYuOTk5IDE2Ljk2MSAxMC42MDJWNTEuOTkzeiIvPiYjeGE7CTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02NS4zNDQgNDAuMjZMNDYuMTg5IDUxLjk3OXYyMi44NDdsMTYuODk5LTEwLjU3NiAxMi41MzkgNi45NzQgMi42MDktMS41MDV2LTIuNzY1bC0xMi43ODQtNy4xMTJ6Ii8+JiN4YTs8L3N2Zz4=;" vertex="1" parent="5gIoKyEhB0twP1pWMEBH-137">
          <mxGeometry width="26" height="30" relative="1" as="geometry">
            <mxPoint x="17" y="15" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="112" value="Runs Your&lt;br&gt;Service in&lt;br&gt;Docker&lt;br&gt;Containers&lt;br&gt;" style="edgeStyle=elbowEdgeStyle;rounded=0;elbow=vertical;html=1;startArrow=none;startFill=1;endArrow=blockThin;endFill=1;jettySize=auto;orthogonalLoop=1;strokeWidth=2;fontSize=10;fontColor=#999999;align=center;dashed=0;strokeColor=#4284F3;endSize=4;startSize=4;verticalAlign=bottom;labelBackgroundColor=none;" parent="14" source="5gIoKyEhB0twP1pWMEBH-135" target="5gIoKyEhB0twP1pWMEBH-137" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="2" value="Architecture: General &amp;gt; Firebase and Managed VMs" style="fillColor=#4DA1F5;strokeColor=none;shadow=1;gradientColor=none;fontSize=14;align=left;spacingLeft=50;fontColor=#ffffff;html=1;" parent="1" vertex="1">
          <mxGeometry x="240" y="40" width="790" height="40" as="geometry" />
        </mxCell>
        <mxCell id="16" value="" style="rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=0;strokeColor=none;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;fillColor=#E0E0E0;" parent="1" vertex="1">
          <mxGeometry x="250" y="740" width="780" height="30" as="geometry" />
        </mxCell>
        <mxCell id="88" value="Process&lt;br&gt;the Data&lt;br&gt;" style="edgeStyle=orthogonalEdgeStyle;fontSize=10;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;startArrow=blockThin;startFill=1;fontColor=#999999;align=left;labelBackgroundColor=none;" parent="1" source="5gIoKyEhB0twP1pWMEBH-135" target="105" edge="1">
          <mxGeometry x="0.25" y="10" width="100" relative="1" as="geometry">
            <mxPoint x="352" y="257.5" as="sourcePoint" />
            <mxPoint x="432" y="257.5" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="89" value="Synchronise Across Devices&lt;br&gt;" style="edgeStyle=orthogonalEdgeStyle;fontSize=10;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;startArrow=none;startFill=0;fontColor=#999999;labelBackgroundColor=none;" parent="1" source="105" target="98" edge="1">
          <mxGeometry x="-0.3514" y="14" width="100" relative="1" as="geometry">
            <mxPoint x="632" y="327.5" as="sourcePoint" />
            <mxPoint x="712" y="327.5" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="90" value="Update Data&lt;br&gt;" style="edgeStyle=orthogonalEdgeStyle;fontSize=10;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;startArrow=none;startFill=0;fontColor=#999999;labelBackgroundColor=none;" parent="1" source="39" target="105" edge="1">
          <mxGeometry x="-0.0145" y="14" width="100" relative="1" as="geometry">
            <mxPoint x="352" y="327.5" as="sourcePoint" />
            <mxPoint x="432" y="327.5" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="39" value="" style="strokeColor=#dddddd;fillColor=#ffffff;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=bottom;spacingLeft=0;fontColor=#999999;fontSize=12;whiteSpace=wrap;spacingBottom=2;html=1;" parent="1" vertex="1">
          <mxGeometry x="252" y="346" width="70" height="71" as="geometry" />
        </mxCell>
        <mxCell id="40" value="" style="dashed=0;html=1;fillColor=#757575;strokeColor=none;shape=mxgraph.gcp2.phone;part=1;" parent="39" vertex="1">
          <mxGeometry x="0.5" width="32" height="50" relative="1" as="geometry">
            <mxPoint x="-16" y="10" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="96" value="iOS" style="strokeColor=#dddddd;fillColor=#ffffff;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=bottom;spacingLeft=0;fontColor=#999999;fontSize=12;whiteSpace=wrap;spacingBottom=2;html=1;" parent="1" vertex="1">
          <mxGeometry x="930" y="214.5" width="70" height="85" as="geometry" />
        </mxCell>
        <mxCell id="97" value="" style="dashed=0;html=1;fillColor=#757575;strokeColor=none;shape=mxgraph.gcp2.phone;part=1;" parent="96" vertex="1">
          <mxGeometry x="0.5" width="32" height="50" relative="1" as="geometry">
            <mxPoint x="-16" y="10" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="98" value="Android" style="strokeColor=#dddddd;fillColor=#ffffff;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=bottom;spacingLeft=0;fontColor=#999999;fontSize=12;whiteSpace=wrap;spacingBottom=2;html=1;" parent="1" vertex="1">
          <mxGeometry x="930" y="339" width="70" height="85" as="geometry" />
        </mxCell>
        <mxCell id="99" value="" style="dashed=0;html=1;fillColor=#757575;strokeColor=none;shape=mxgraph.gcp2.phone;part=1;" parent="98" vertex="1">
          <mxGeometry x="0.5" width="32" height="50" relative="1" as="geometry">
            <mxPoint x="-16" y="10" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="100" value="Web" style="strokeColor=#dddddd;fillColor=#ffffff;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=bottom;spacingLeft=0;fontColor=#999999;fontSize=12;whiteSpace=wrap;spacingBottom=2;html=1;" parent="1" vertex="1">
          <mxGeometry x="930" y="463.5" width="70" height="85" as="geometry" />
        </mxCell>
        <mxCell id="101" value="" style="dashed=0;html=1;fillColor=#757575;strokeColor=none;shape=mxgraph.gcp2.phone;part=1;" parent="100" vertex="1">
          <mxGeometry x="0.5" width="32" height="50" relative="1" as="geometry">
            <mxPoint x="-16" y="10" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="104" value="" style="edgeStyle=orthogonalEdgeStyle;fontSize=10;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;dashed=0;strokeColor=#4284F3;startArrow=none;startFill=0;fontColor=#999999;labelBackgroundColor=none;" parent="1" source="100" target="96" edge="1">
          <mxGeometry x="-0.375" y="24" width="100" relative="1" as="geometry">
            <mxPoint x="647.5" y="391.5" as="sourcePoint" />
            <mxPoint x="807.5" y="391.5" as="targetPoint" />
            <mxPoint as="offset" />
            <Array as="points">
              <mxPoint x="900" y="507.5" />
              <mxPoint x="900" y="258.5" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="105" value="" style="strokeColor=#dddddd;fillColor=#ffffff;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;fontSize=17;fontColor=#000000;align=right;html=1;" parent="1" vertex="1">
          <mxGeometry x="420" y="351.5" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="106" value="Firebase" style="dashed=0;html=1;fillColor=#5184F3;strokeColor=none;shape=mxgraph.gcp2.firebase;part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;" parent="105" vertex="1">
          <mxGeometry width="32.4" height="45" relative="1" as="geometry">
            <mxPoint x="5" y="7" as="offset" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
